package org.abettor.pushbox.util;
/**
 * 进行数组操作的util
 * @author jzh
 *
 */
public class ByteArrayUtil {
	/**
	 * 把二维字符数组拷贝成一维字符数组
	 * @param array
	 * @return
	 */
	public static byte [] change2to1(byte [][] array){
		int y = array.length;
		int x = array[0].length;
		byte [] ret = new byte[x*y];
		int index = 0;
		for(int i=0;i < y;i++){
			index = i * x;
			System.arraycopy(array[i], 0, ret, index, x);
		}
		return ret;
	}
	/**
	 * 把二维字符数组拷贝成一维字符数组
	 * @param src 源
	 * @param dest 目的
	 * @param begin 目的的起始位置
	 */
	public static void change2to1(byte [][] src,byte [] dest,int begin){
		int y = src.length;
		int x = src[0].length;
		int index = begin;
		for(int i=0;i < y;i++){
			index = i * x+begin;
			System.arraycopy(src[i], 0, dest, index, x);
		}
	}
	/**
	 * 把一维数组拷贝到二维数组里边
	 * @param array
	 * @param x
	 * @param y
	 * @return
	 */
	public static byte[][] change1to2(byte [] array,int x,int y){
		byte[][] ret = new byte[y][x];
		int index = 0;
		for(int i=0;i < y;i++){
			index = i * x;
			System.arraycopy(array, index, ret[i], 0, x);
		}
		return ret;
	}
	/**
	 * 把一维数组格式化到二维数组里边
	 * @param array
	 * @param index
	 * @param x
	 * @param y
	 * @return
	 */
	public static byte[][] change1to2(byte [] array,int begin,int x,int y){
		byte[][] ret = new byte[y][x];
		int index = 0;
		for(int i=0;i < y;i++){
			index = i * x + begin;
			System.arraycopy(array, index, ret[i], 0, x);
		}
		return ret;
	}
}
